//引入axios
import axios from "axios"
import store from "@/store"
//引入nprogress
import nProgress from "nprogress"
import "nprogress/nprogress.css"

// console.log(process.env);

//创建axios实例
const request = axios.create({
    baseURL: process.env.VUE_APP_API + "/api",
    timeout: 5000,
})

//设置请求拦截器
request.interceptors.request.use((config) => {
    nProgress.start()
    //获取用户临时身份信息的值,然后随着header的[userTempId]字段发送
    config.headers.userTempId = store.state.user.userTempId
    // console.log(config,"config");    
    // console.log(store,"store");
    //获取token信息的值,然后随着header的字段发送
    config.headers.token = store.state.user.token
    return config
})

//设置响应拦截器
request.interceptors.response.use((response) => {
    nProgress.done()
    // 从响应的数据中解构code和message
    const {
        code,
        message
    } = response.data
    // 如果code的值是200，说明成功的响应到我们想要的数据，然后返回一个过滤后的数据
    if (code === 200) {
        return response.data.data
    }
    //如果code的值不是200，说明不是我们想要的数据，则返回一个失败的promise，值为响应信息
    return Promise.reject({
        message: message
    })

}, (error) => {
    nProgress.done()
    // 响应失败则返回一个失败的promise，值为失败信息
    return Promise.reject(error)
})

// 暴露request
export default request